package edu.mtu.citizenscience.cs.sdk.uploader;
/*
 * @author Corbin Uselton <corbinu@cwuselto@mtu.edu>
 * @copyright (c) 2012 MichiganTech <http://www.mtu.edu>
 * @since 1.0
 * Call backs for handling status changes from the uploader
 * Handles errors, progress and completion
 */
public interface CitsciUploaderCallback {
	
	/**
	 * Called on progress update from the uploader
	 * 
	 * @param progress - CitsciUploaderProgress - enum for progress status
	 * @param reportNum - int - the number of the current report -1 if none
	 * @param fileNum - int - the number of the current file -1 if none 
	 * @return void
	 */
	public void uploaderProgress(CitsciUploaderProgress progress, int reportNum, int fileNum);
	
	/**
	 * Called on progress max update from the uploader
	 * 
	 * @param max - int - the maximum for the dialogs progress bar
	 * @return void
	 */
	public void uploaderProgressMax(int max);
	
	/**
	 * Called on progress update from the uploader
	 * 
	 * @param update - int - the current value for the dialogs progress bar
	 * @return void
	 */
	public void uploaderProgressUpdate(int update);
	
	/**
	 * Called on error from the uploader
	 * 
	 * @param code - CitsciUploaderError - enum for specific error
	 * @return void
	 */
	public void uploaderError(CitsciUploaderError code);
	
	/**
	 * Called on error message from the uploader
	 * 
	 * @param message - String - The error message
	 * @return void
	 */
	public void uploaderErrorMessage(String message);
	
	/**
	 * Called when the upload is complete
	 * 
	 * @param void
	 * @return void
	 */
	public void uploaderUploadComplete();
	
}
